﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Tradex.Trading {

    /// <summary>
    /// An OrderReport is a generic report about an order.
    /// </summary>
    public class OrderReport {

        /// <summary>
        /// Constructor taking all values.
        /// </summary>
        /// <param name="eventType"></param>
        /// <param name="order"></param>
        /// <param name="message"></param>
        /// <param name="timestamp"></param>
        public OrderReport(OrderReportType eventType, OrderInfo order, string message, DateTime timestamp) {
            EventType = eventType;
            Order = order;
            Message = message;
            Timestamp = timestamp;
        }

        /// <summary>
        /// Gets the type of the order report.
        /// </summary>
        public OrderReportType EventType { get; private set; }

        /// <summary>
        /// Gets the order info.
        /// </summary>
        public OrderInfo Order { get; private set; }

        /// <summary>
        /// Gets the string message.
        /// </summary>
        public string Message { get; private set; }

        /// <summary>
        /// Gets the Timestamp.
        /// </summary>
        public DateTime Timestamp { get; private set; }

    }
}
